package com.niiwoo.civet.trade.service.org;

import java.util.List;

import com.niiwoo.civet.trade.dto.response.LendOrderResponseDTO;
import com.niiwoo.civet.trade.dto.response.myloan.LoanVoucherAuditInfoQueryResponseDTO;
import com.niiwoo.civet.trade.dto.response.org.AssetOrgProjectResponseDTO;
import com.niiwoo.civet.trade.dto.response.org.ProjectBorrowerPlanNewResponseDTO;
import com.niiwoo.civet.trade.dto.response.orgloan.OrgApplyHouseResponseDTO;
import com.niiwoo.civet.trade.dto.response.orgloan.OrgApplyLoanInfoResponseDTO;
import com.niiwoo.civet.trade.dto.response.orgloan.OrgInfoResponseDTO;


/**
 * 极速借机构服务
 * @author hh
 *
 */
public interface OrgProjectDubboService {

	/**
	 * 查询第三方机构的标的信息
	 * @param orgId
	 * @return
	 */
	AssetOrgProjectResponseDTO getAsserOrgProject(String orgId,Long orderId);

	/**
	 * 查询第三方机构的标的信息
	 * @param projectId
	 * @return
	 */
	AssetOrgProjectResponseDTO getAsserOrgProject(Long projectId);

    /**
     * 同步标的状态
     * @param projectId
     */
	void syncProjectStatus(Long projectId);

	/**
	 * 计划任务同步标的状态
	 */
	default void syncProjectStatusByJob() {
	}

	/**
	 * 查询极速借机构标的还款计划
	 * @param projectId
	 * @return
	 */
	List<ProjectBorrowerPlanNewResponseDTO> getProjectBorrowerPlanNew(Long projectId);

	/**
	 * 查询放款订单信息
	 * @param projectId
	 * @return
	 */
	LendOrderResponseDTO getLendOrder(Long projectId);

	/**
	 * 查询合同查看地址
	 * @param projectId
	 * @return
	 */
	String getProjectContractViewUrl(Long projectId);

	/**
	 * 从查询借款企业信息
	 * @param projectId
	 * @return
	 */
	default public OrgInfoResponseDTO queryLoanOrgInfo(Long projectId) {
		return null;
	}
    //查询机构信息
	default public OrgInfoResponseDTO queryOrgInfo(Long projectId) {
		return null;
	}

	/**
	 * 查询房产信息
	 * @param projectId
	 * @return
	 */
	default OrgApplyHouseResponseDTO queryOrgApplyHouse(Long projectId) {
		return null;
	}

	/**
	 * 查询借款个人标的信息
	 * @param projectId
	 * @return
	 */
	default OrgApplyLoanInfoResponseDTO queryOrgApplyLoanInfo(Long projectId){ return null;}

	/**
	 * 查询借款快照图片
	 * @param projectId
	 * @param loginUserId
	 * @param borrowUserId
	 * @return
	 */
	default public LoanVoucherAuditInfoQueryResponseDTO loanVoucherAuditInfoQuery(Long projectId, String loginUserId, String borrowUserId){
		return null;
	};

	/**
	 * 修改筹标结束时间
	 */
	default void updateFundraisingEndTime(String orgId, Long orderId) {
		throw new UnsupportedOperationException("unimplemented");
	}

}
